const app = getApp()

Page({
  data: {
    userInfo: {},
    stats: {}
  },

  onLoad() {
    this.loadUserInfo()
  },

  onShow() {
    // 页面显示时刷新数据
    this.loadUserInfo()
    if (app.globalData.userInfo) {
      this.loadUserStats()
    }
  },

  // 加载用户信息
  loadUserInfo() {
    const userInfo = app.globalData.userInfo || {}
    this.setData({ userInfo })
  },

  // 加载用户统计数据
  loadUserStats() {
    if (!app.globalData.token) return

    wx.request({
      url: `${app.globalData.baseUrl}/users/stats`,
      method: 'GET',
      header: {
        'Authorization': `Bearer ${app.globalData.token}`
      },
      success: (res) => {
        if (res.data.success) {
          this.setData({ stats: res.data.data })
        }
      },
      fail: (err) => {
        console.error('加载用户统计失败:', err)
      }
    })
  },

  // 登录
  login() {
    wx.getUserProfile({
      desc: '用于完善用户资料',
      success: (res) => {
        const userInfo = res.userInfo
        
        // 调用后端登录接口
        wx.request({
          url: `${app.globalData.baseUrl}/auth/wechat-login`,
          method: 'POST',
          data: {
            code: userInfo.code,
            user_info: userInfo
          },
          success: (loginRes) => {
            if (loginRes.data.success) {
              const { token, user } = loginRes.data.data
              
              // 保存到全局数据
              app.globalData.token = token
              app.globalData.userInfo = user
              
              // 更新页面数据
              this.setData({ userInfo: user })
              this.loadUserStats()
              
              wx.showToast({
                title: '登录成功',
                icon: 'success'
              })
            } else {
              wx.showToast({
                title: loginRes.data.message || '登录失败',
                icon: 'none'
              })
            }
          },
          fail: (err) => {
            console.error('登录失败:', err)
            wx.showToast({
              title: '网络错误',
              icon: 'none'
            })
          }
        })
      },
      fail: (err) => {
        console.error('获取用户信息失败:', err)
        wx.showToast({
          title: '获取用户信息失败',
          icon: 'none'
        })
      }
    })
  },

  // 退出登录
  logout() {
    wx.showModal({
      title: '确认退出',
      content: '确定要退出登录吗？',
      success: (res) => {
        if (res.confirm) {
          // 清除全局数据
          app.globalData.token = null
          app.globalData.userInfo = null
          
          // 更新页面数据
          this.setData({
            userInfo: {},
            stats: {}
          })
          
          wx.showToast({
            title: '已退出登录',
            icon: 'success'
          })
        }
      }
    })
  },

  // 跳转到我的考试
  goToExams() {
    if (!this.checkLogin()) return
    wx.navigateTo({
      url: '/pages/my-exams/my-exams'
    })
  },

  // 跳转到我的证书
  goToCertificates() {
    if (!this.checkLogin()) return
    wx.navigateTo({
      url: '/pages/certificates/certificates'
    })
  },

  // 跳转到排行榜
  goToLeaderboard() {
    wx.navigateTo({
      url: '/pages/leaderboard/leaderboard'
    })
  },

  // 跳转到我的收藏
  goToFavorites() {
    if (!this.checkLogin()) return
    wx.navigateTo({
      url: '/pages/favorites/favorites'
    })
  },

  // 跳转到学习历史
  goToHistory() {
    if (!this.checkLogin()) return
    wx.navigateTo({
      url: '/pages/learning-history/learning-history'
    })
  },

  // 跳转到设置
  goToSettings() {
    wx.navigateTo({
      url: '/pages/settings/settings'
    })
  },

  // 跳转到关于我们
  goToAbout() {
    wx.navigateTo({
      url: '/pages/about/about'
    })
  },

  // 联系我们
  contactUs() {
    wx.showActionSheet({
      itemList: ['复制客服微信', '发送邮件', '拨打电话'],
      success: (res) => {
        switch (res.tapIndex) {
          case 0:
            wx.setClipboardData({
              data: 'gooddad100',
              success: () => {
                wx.showToast({
                  title: '微信号已复制',
                  icon: 'success'
                })
              }
            })
            break
          case 1:
            wx.setClipboardData({
              data: 'support@gooddad100.com',
              success: () => {
                wx.showToast({
                  title: '邮箱已复制',
                  icon: 'success'
                })
              }
            })
            break
          case 2:
            wx.makePhoneCall({
              phoneNumber: '400-123-4567'
            })
            break
        }
      }
    })
  },

  // 检查登录状态
  checkLogin() {
    if (!app.globalData.userInfo) {
      wx.showModal({
        title: '提示',
        content: '请先登录后再使用此功能',
        showCancel: false
      })
      return false
    }
    return true
  }
}) 